#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications

preinit_ip() {
	# if the preinit interface isn't specified and ifname is set in
	# preinit.arch use that interface
	if [ -z "$pi_ifname" ]; then
		pi_ifname=$ifname
	fi

	[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
		ip link set dev $pi_ifname up
		ip -4 address add $pi_ip/$pi_netmask broadcast $pi_broadcast dev $pi_ifname
	}
}

preinit_ip_deconfig() {
	[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
		ip -4 address flush dev $pi_ifname
		ip link set dev $pi_ifname down
	}
}

preinit_net_echo() {
	[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
		{
			[ "$pi_preinit_net_messages" = "y" ] || {
				[ "$pi_failsafe_net_message" = "true" ] &&
					[ "$pi_preinit_no_failsafe_netmsg" != "y" ]
			}
		} && netmsg $pi_broadcast "$1"
	}
}

preinit_echo() {
	preinit_net_echo $1
	echo $1
}

pi_indicate_preinit() {
	preinit_net_echo "Doing OpenWrt Preinit\n"
	set_state preinit
}

boot_hook_add preinit_main preinit_ip
boot_hook_add preinit_main pi_indicate_preinit
